package cao_shengjie;
/*
用java实现一个栈 要求有进栈跟出栈
用时15分钟
 */
class Stack {//定义一个栈类
    private int head;//栈顶
    private int zhandi;//栈底
    private int data[];//栈中的值
    public Stack() {}//无参构造
    public Stack(int length)//构造方法 进行栈的初始化
    {
        this.head=this.zhandi=-1;//初始化值栈顶跟栈底都为-1
        this.data=new int[length];//将形参length定义为该栈的总长度
    }

    public void enterStack(int data)//进栈方法
    {

         if(this.head==this.data.length-1)//栈满
        {
             System.out.println("栈满无法进行进栈操作!");
        }
        else //栈不满的情况
        {
            this.head++;//栈顶加1
            this.data[this.head]=data;
            System.out.println("进栈成功！");
        }
    }
    public void outStack()//出栈方法
    {   int a;//让操作者知道出栈元素是什么
        if(this.head==this.zhandi)
        {
            System.out.println("该栈为空无法进行出栈操作!");
        }
        else
        {
           a=this.data[this.head];//记录出栈元素
           this.head--;//栈顶-1
           System.out.println("出栈成功!出栈元素为："+a);//
        }
    }






}

public class Q1 {
    public static void main(String args[])
    {
        Stack s=new Stack(3);
        s.enterStack(1);
        s.enterStack(2);
        s.enterStack(3);
        s.outStack();
        s.outStack();
        s.outStack();





    }


    }







